回歸昨天提到的,大多數人可能都有在Excel中使用透視表的經驗。 Pandas 提供了一個類似的函數,叫做 Pivot_table。雖然它非常有用,但我經常發現自己很難記住如何使用語法來格式化輸出我的需要。本文將重點解釋pandas pivot_table 函數以及如何將其用於你的數據分析。
使用 Pandas 的挑戰之一是確保你了解你的數據,以及你試圖用透視表來回答什麼問題。它看似簡單的函數,但可以快速產生非常強大的分析。在這種情況下,我將會利用行銷漏斗來說明。你可以思考基本問題是,有些銷售週期非常長,如果管理層希望在一年中更詳細地了解它,需要利用什麼常見的典型問題包含。
df = pd.read_excel("data/funnel.xlsx")
df.head()
為了方便起見,讓我們把狀態列定義為一個類別,並設置我們想要查看的順序。 這不是嚴格的要求,但有助於我們在分析數據的過程中保持我們想要的順序。使用熊貓的數據透視表可以是一個很好的選擇:
df["Status"] = df["Status"].astype("category")
df["Status"].cat.set_categories(["won","pending","presented","declined"],inplace=True)
df.head()
pd.pivot_table(df,index=["Name"]) #Prcie & Quantuly = AVG
你可以看到,數據透視表足夠聰明,它開始匯總數據,並通過將代表與他們的經理分組來總結數據。現在我們開始領略到數據透視表可以為我們做什麼。對於這個目的,賬戶和數量列並不真正有用。讓我們通過使用數值字段明確定義我們所關心的列來刪除它。
pd.pivot_table(df,index=["Manager","Rep","Name"],values=["Price"]) #AVG
aggfunc 可以接受一個函數的列表。價格欄會自動對數據進行平均,但我們可以做一個計數或求和。使用aggfunc和np.sum就可以簡單地將它們加起來。讓我們試試用numpy的mean函數和len來得到一個計數的平均值。
pd.pivot_table(df,index=["Manager","Rep"],values=["Price"],aggfunc=np.sum)
今年沒組團,每一筆一字矢志不渝的獻身精神都是為歷史書寫下新頁,有空的話可以走走逛逛我們去年寫的文章。
Jerry 據說是個僅佔人口的 4% 人口的 INFP 理想主義者,總是從最壞的生活中尋找最好的一面,想方設法讓世界更好,內心的火焰和熱情可以光芒四射,畢業後把人生暫停了半年,緩下腳步的同時找了份跨領域工作。偶而散步、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有夢想的人。
謝謝你的時間「訂閱,追蹤和留言」都是陪伴我走過 30 天鐵人賽的精神糧食。